﻿using System;
using System.Collections;
using UnityEngine;

namespace Asset
{

    public enum AsyncStatus
    {
        Waiting,
        Running,
        Finish
    }

    public interface IAsyncBundle
    {
        string URL
        {
            get;
        }
        AsyncStatus Status
        {
            get;
        }
        AssetBundle bundle
        {
            get;
        }
        UnityEngine.Object editorAsset
        {
            get;set;
        }
        int RefCount

        {
            get;
            set;
        }
        bool canUnload
        {
            get;
        }
        int loadCostTime
        {
            get;
        }
        void unload();
        IEnumerator doLoad();
        void doLoadImm();
        void removeAsyncAsset(string resName);
        AsyncAsset<T> loadAssetAsync<T>(string name) where T : UnityEngine.Object;
        T loadAsset<T>(string name) where T : UnityEngine.Object;
    }



}
